package org.cunamas.web.ws;

import java.util.List;

import javax.annotation.Resource;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.WebServiceContext;

import org.cunamas.core.bean.BudgetInputBean;
import org.cunamas.core.bean.LocalesBean;
import org.cunamas.core.bean.ServiciosAlimentariosBean;
import org.cunamas.core.dto.AsistenciaGrupoEtareoDto;
import org.cunamas.core.dto.CoberturaAtencionDto;
import org.cunamas.core.dto.ComitesDesempenioDto;
import org.cunamas.core.dto.CulturaCrianzaDto;
import org.cunamas.core.dto.DesempenioAnioDto;
import org.cunamas.core.dto.DesempenioPracticaDto;
import org.cunamas.core.dto.Filtros;
import org.cunamas.core.dto.GraficoBarrasDto;
import org.cunamas.core.dto.PermanenciaDto;
import org.cunamas.core.dto.PracticasCrianzaDto;
import org.cunamas.core.dto.ReporteTotalMejDiagDto;
import org.cunamas.core.dto.ReporteTotalNiniosAtendidosDto;
import org.cunamas.core.dto.ReporteTotalNiniosDocDto;
import org.cunamas.core.dto.ReporteTotalProtegidosSo3Dto;
import org.cunamas.core.dto.ReporteTotalWwComFam3Dto;
import org.cunamas.web.util.WebUtil;
import org.springframework.stereotype.Component;

@Component
@WebService(name = "CunamasPortType", serviceName = "CunamasService", portName = "CunamasSoaPort", targetNamespace = "http://controller.web.cunamas.org")
public class CunaMasWs  {

	@Resource
	WebServiceContext context;

	@WebResult(name = "retornaDesempanioPractica")
	public List<DesempenioPracticaDto> retornaDesempanioPractica(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaDesempanioPractica(filtros);
	}
	
	
	@WebResult(name = "retornaDesempanioAnio")
	public List<DesempenioAnioDto> retornaDesempanioAnio(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaDesempanioAnio(filtros);
	}
	

	@WebResult(name = "retornaAsistenciaGrupoEtareo")
	public List<AsistenciaGrupoEtareoDto> retornaAsistenciaGrupoEtareo(
			@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaAsistenciaGrupoEtareo(filtros);
	}
	
	@WebResult(name = "retornaCoberturaAtencion")
	public List<CoberturaAtencionDto> retornaCoberturaAtencion(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaCoberturaAtencion(filtros);
	}
	
	@WebResult(name = "retornaAtencionIntegralTallaEdad")
	public List<GraficoBarrasDto> retornaAtencionIntegralTallaEdad(
			@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaAtencionIntegralTallaEdad(filtros);
	}
	
	@WebResult(name = "retornaAtencionIntegralPesoTalla")
	public List<GraficoBarrasDto> retornaAtencionIntegralPesoTalla(
			@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaAtencionIntegralPesoTalla(filtros);
	}
	
	
	@WebResult(name = "retornaPermanencia")
	public List<PermanenciaDto> retornaPermanencia(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaPermanencia(filtros);
	}

	
	@WebResult(name = "retornaDesempenoMadres")
	public List<GraficoBarrasDto> retornaDesempenoMadres(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaDesempenoMadres(filtros);
	}
	
	@WebResult(name = "retornaCulturaCrianza")
	public List<CulturaCrianzaDto> retornaCulturaCrianza(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaCulturaCrianza(filtros);
	}
	
	@WebResult(name = "retornaLocales")
	public List<LocalesBean> retornaLocales(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaLocales(filtros);
	}
	
	@WebResult(name = "retornaServiciosAlimentarios")
	public List<ServiciosAlimentariosBean> retornaServiciosAlimentarios(
			@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaServiciosAlimentarios(filtros);
	}
	
	@WebResult(name = "processBudgetReport")
	public List<BudgetInputBean> processBudgetReport(@WebParam(name = "anio")Long anio, @WebParam(name = "mes")Long mes) {
		return WebUtil.getReportesCunamasService(context).processBudgetReport(anio, mes);
	}
	
	
	@WebResult(name = "retornaPracticasCrianza")
	public List<PracticasCrianzaDto> retornaPracticasCrianza(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaPracticasCrianza(filtros);
	}
	
	@WebResult(name = "retornaComiteDesempenio")
	public List<ComitesDesempenioDto> retornaComiteDesempenio(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaComiteDesempenio(filtros);
	}
	
	@WebResult(name = "retornaReporteTotalMejDiagDto")
	public List<ReporteTotalMejDiagDto> retornaReporteTotalMejDiagDto(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaReporteTotalMejDiagDto(filtros);
	}

	@WebResult(name = "retornaReporteTotalNiniosAtendidos")
	public List<ReporteTotalNiniosAtendidosDto> retornaReporteTotalNiniosAtendidos(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaReporteTotalNiniosAtendidos(filtros);
	}
	
	@WebResult(name = "retornaReporteTotalNiniosDoc")
	public List<ReporteTotalNiniosDocDto> retornaReporteTotalNiniosDoc(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaReporteTotalNiniosDoc(filtros);
	}
	
	@WebResult(name = "retornaReporteTotalProtegidosSo3Dto")
	public List<ReporteTotalProtegidosSo3Dto> retornaReporteTotalProtegidosSo3Dto(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaReporteTotalProtegidosSo3Dto(filtros);
	}
	
	@WebResult(name = "retornaReporteTotalNiniosDoc")
	public List<ReporteTotalWwComFam3Dto> retornaReporteTotalWwComFam3Dto(@WebParam(name = "filtros")Filtros filtros) {
		return WebUtil.getReportesCunamasService(context).retornaReporteTotalWwComFam3Dto(filtros);
	}
}
